<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
  <title>Description of localSum</title>
  <meta name="keywords" content="localSum">
  <meta name="description" content="Fast routine for box, max and min filtering.">
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
  <meta name="robots" content="index, follow">
  <link type="text/css" rel="stylesheet" href="../m2html.css">
</head>
<body>
<a name="_top"></a>
<!-- menu.html images -->
<h1>localSum
</h1>

<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="box"><strong>Fast routine for box, max and min filtering.</strong></div>

<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="box"><strong>function I = localSum( I, dims, shape, op ) </strong></div>

<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="fragment"><pre class="comment"> Fast routine for box, max and min filtering.

 Same effect as calling 'C=convn( I, ones(dims), shape)', except more
 efficient. Computes local sums by using running sums. To get sum in
 non-overlapping windows, use shape='block'. Equivalent to doing localSum,
 and then subsampling (except more efficient). If operation op is set to
 'max' or 'min', computes local maxes or mins instead of sums. Note, that
 when applicable convBox and convMax are significantly faster.

 USAGE
  I = localSum( I, dims, [shape], [op] )

 INPUTS
  I       - matrix to compute sum over
  dims    - size of volume to compute sum over, can be scalar
  shape   - ['full'] 'valid', 'full', 'same', or 'block'
  op      - ['sum'] 'max', or 'min'

 OUTPUTS
  C       - matrix of sums

 EXAMPLE - 1
  A=rand(500,500,1); dim=25; f=ones(dim,1); shape='same'; r=20;
  tic, for i=1:r, B = localSum(A,dim,shape); end; toc
  tic, for i=1:r, C = conv2(conv2(A,f,shape),f',shape); end; toc
  diff=B-C; im(diff), sum(abs(diff(:)))

 EXAMPLE - 2
  load trees; I=ind2gray(X,map); figure(1); im(I);
  I1=localSum(I,3,'block','sum'); figure(2); im(I1); title('sum')
  I2=localSum(I,3,'block','max'); figure(3); im(I2); title('max')
  I3=localSum(I,3,'block','min'); figure(4); im(I3); title('min')

 See also convBox, convMax, <a href="imShrink.html" class="code" title="function I = imShrink( I, ratios )">imShrink</a>

 Piotr's Computer Vision Matlab Toolbox      Version 3.22
 Copyright 2014 Piotr Dollar.  [pdollar-at-gmail.com]
 Licensed under the Simplified BSD License [see external/bsd.txt]</pre></div>





<!-- Start of Google Analytics Code -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4884268-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- end of Google Analytics Code -->

<hr><address>Generated by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" target="_parent">m2html</a></strong> &copy; 2003</address>
</body>
</html>
